package d5_map_traversal_method;

import java.util.*;

public class MapTest {
    public static void main(String[] args) {
        //目标: 使用Map集合完成投票案例
        //1、把80个学生的景点造造出来
        String[] locations = {"到悬山", "紫山", "中洲大陆", "骊珠洞天"};

        //2、定义一个List集合, 随机挑选学生想要去的景点
        List<String> data = new ArrayList<>();
        Random random = new Random();
        //存入景点
        for (int i = 0; i < 80; i++) {
            //随机挑选学生的景点-->利用随机索引
            //然后将挑选的景点存入集合中
            data.add(locations[random.nextInt(locations.length)]);
        }

        //3、准备一个map集合进行存储统计的结果
        Map<String, Integer> map = new HashMap<>();

        //4、统计每个景点的选择人数
        //遍历list集合
        for (String spots : data) {
            //判断map集合中是否已经存在景点
            if (map.containsKey(spots)) {
                //存在,就用原本的人数+1
                map.put(spots, map.get(spots) + 1);
            } else {
                //不存在,就是第一次存储,将景点存进去,人数是1
                map.put(spots, 1);//后面同名的键会覆盖前面的键值对
            }
        }

        //5、遍历结合展示展示选点的人数
        map.forEach((spots,numberOfPeople) -> {
            System.out.println(spots + "人数是:" + numberOfPeople);
        });
    }
}
